package com.ahora.org.ejb.jpa.entities;

import java.io.Serializable;
import java.sql.Timestamp;
import java.util.Set;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;
import javax.persistence.Transient;

/**
 * The persistent class for the TB_PROCESO database table.
 * 
 */
@Entity
@Table(name = "TB_PROCESO")
public class Proceso implements Serializable {
	private static final long serialVersionUID = 1L;

	@Id
	@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "SEC_PROCESO")
	@SequenceGenerator(name = "SEC_PROCESO", sequenceName = "SEC_PROCESO")
	@Column(name = "ID_PROCESO")
	private int idProceso;

	@Column(name = "COD_PROCESO")
	private String codProceso;

	private double costo;

	private String descripcion;

	@Column(name = "DIAS_APE")
	private int diasApe;

	@Column(name = "DIAS_REC")
	private int diasRec;

	private int duracion;

	@Column(name = "FECHA_MODIFICACION")
	private Timestamp fechaModificacion;

	@Column(name = "FECHA_REGISTRO")
	private Timestamp fechaRegistro;

	@Column(name = "ID_ESTADO")
	private int idEstado;

	@Column(name = "NOMBRE_PROCESO")
	private String nombreProceso;

	@Column(name = "TIP_DER")
	private int tipDer;

	@Column(name = "TIP_EVA")
	private int tipEva;

	@Column(name = "ID_TIPO_SERVICIO")
	private int idTipoServicio;

	@Column(name = "EN_PASO")
	private String enPaso;

	@Column(name = "PORC_UTI")
	private double porcentaje;

	@Column(name = "TIPO_PROCESO")
	private String tipoProceso;

	// bi-directional many-to-one association to Area
	// tbAreaByIdAreaApe
	@ManyToOne
	@JoinColumn(name = "ID_AREA_APE")
	private Area tbAreaByIdAreaApe;

	// bi-directional many-to-one association to Area
	// tbAreaByIdAreaRec
	@ManyToOne
	@JoinColumn(name = "ID_AREA_REC")
	private Area tbAreaByIdAreaRec;

	// bi-directional many-to-one association to Area
	@ManyToOne
	@JoinColumn(name = "ID_AREA")
	private Area tbArea;

	// bi-directional many-to-one association to Usuario
	@ManyToOne
	@JoinColumn(name = "ID_USUARIO")
	private Usuario tbUsuario;

	// bi-directional many-to-one association to Expediente
	@OneToMany(mappedBy = "tbProceso")
	private Set<Expediente> tbExpedientes;

	// bi-directional many-to-one association to ApeRecProceso
	@OneToMany(mappedBy = "tbProceso")
	private Set<ApeRecProceso> tbApeRecProcesos;

	// bi-directional many-to-one association to DetalleProcesoRequisitos
	@OneToMany(mappedBy = "tbProceso")
	private Set<DetalleProcesoRequisitos> tbDetalleProcesoRequisitos;

	// bi-directional many-to-one association to ApeRecProceso
	@OneToMany(mappedBy = "tbProceso")
	private Set<FlujoProceso> tbFlujoProceso;

	public Proceso() {
	}

	public int getIdProceso() {
		return this.idProceso;
	}

	public void setIdProceso(int idProceso) {
		this.idProceso = idProceso;
	}

	public String getCodProceso() {
		return this.codProceso;
	}

	public void setCodProceso(String codProceso) {
		this.codProceso = codProceso;
	}

	public double getCosto() {
		return costo;
	}

	public void setCosto(double costo) {
		this.costo = costo;
	}

	public double getPorcentaje() {
		return porcentaje;
	}

	public void setPorcentaje(double porcentaje) {
		this.porcentaje = porcentaje;
	}

	public String getDescripcion() {
		return this.descripcion;
	}

	public void setDescripcion(String descripcion) {
		this.descripcion = descripcion;
	}

	public int getDiasApe() {
		return this.diasApe;
	}

	public void setDiasApe(int diasApe) {
		this.diasApe = diasApe;
	}

	public int getDiasRec() {
		return this.diasRec;
	}

	public void setDiasRec(int diasRec) {
		this.diasRec = diasRec;
	}

	public int getDuracion() {
		return this.duracion;
	}

	public void setDuracion(int duracion) {
		this.duracion = duracion;
	}

	public Timestamp getFechaModificacion() {
		return this.fechaModificacion;
	}

	public void setFechaModificacion(Timestamp fechaModificacion) {
		this.fechaModificacion = fechaModificacion;
	}

	public Timestamp getFechaRegistro() {
		return this.fechaRegistro;
	}

	public void setFechaRegistro(Timestamp fechaRegistro) {
		this.fechaRegistro = fechaRegistro;
	}

	public String getEnPaso() {
		return enPaso;
	}

	public void setEnPaso(String enPaso) {
		this.enPaso = enPaso;
	}

	public int getIdEstado() {
		return this.idEstado;
	}

	public void setIdEstado(int idEstado) {
		this.idEstado = idEstado;
	}

	public String getNombreProceso() {
		return this.nombreProceso;
	}

	public void setNombreProceso(String nombreProceso) {
		this.nombreProceso = nombreProceso;
	}

	public int getTipDer() {
		return this.tipDer;
	}

	public void setTipDer(int tipDer) {
		this.tipDer = tipDer;
	}

	public int getTipEva() {
		return this.tipEva;
	}

	public void setTipEva(int tipEva) {
		this.tipEva = tipEva;
	}

	public String getTipoProceso() {
		return this.tipoProceso;
	}

	public void setTipoProceso(String tipoProceso) {
		this.tipoProceso = tipoProceso;
	}

	public Area getTbArea() {
		return this.tbArea;
	}

	public void setTbArea(Area tbArea) {
		this.tbArea = tbArea;
	}

	public Usuario getTbUsuario() {
		return this.tbUsuario;
	}

	public void setTbUsuario(Usuario tbUsuario) {
		this.tbUsuario = tbUsuario;
	}

	public Set<Expediente> getTbExpedientes() {
		return tbExpedientes;
	}

	public void setTbExpedientes(Set<Expediente> tbExpedientes) {
		this.tbExpedientes = tbExpedientes;
	}

	public Set<ApeRecProceso> getTbApeRecProcesos() {
		return tbApeRecProcesos;
	}

	public void setTbApeRecProcesos(Set<ApeRecProceso> tbApeRecProcesos) {
		this.tbApeRecProcesos = tbApeRecProcesos;
	}

	public Set<FlujoProceso> getTbFlujoProceso() {
		return tbFlujoProceso;
	}

	public void setTbFlujoProceso(Set<FlujoProceso> tbFlujoProceso) {
		this.tbFlujoProceso = tbFlujoProceso;
	}

	public Set<DetalleProcesoRequisitos> getTbDetalleProcesoRequisitos() {
		return tbDetalleProcesoRequisitos;
	}

	public void setTbDetalleProcesoRequisitos(
			Set<DetalleProcesoRequisitos> tbDetalleProcesoRequisitos) {
		this.tbDetalleProcesoRequisitos = tbDetalleProcesoRequisitos;
	}

	@Transient
	private String descripcionTipoEvaluacion;
	@Transient
	private String descripcionUnidadGestionEncargada;

	public int getIdTipoServicio() {
		return idTipoServicio;
	}

	public void setIdTipoServicio(int idTipoServicio) {
		this.idTipoServicio = idTipoServicio;
	}

	public String getDescripcionTipoEvaluacion() {
		return descripcionTipoEvaluacion;
	}

	public void setDescripcionTipoEvaluacion(String descripcionTipoEvaluacion) {
		this.descripcionTipoEvaluacion = descripcionTipoEvaluacion;
	}

	public String getDescripcionUnidadGestionEncargada() {
		return descripcionUnidadGestionEncargada;
	}

	public void setDescripcionUnidadGestionEncargada(
			String descripcionUnidadGestionEncargada) {
		this.descripcionUnidadGestionEncargada = descripcionUnidadGestionEncargada;
	}

	public Area getTbAreaByIdAreaApe() {
		return tbAreaByIdAreaApe;
	}

	public void setTbAreaByIdAreaApe(Area tbAreaByIdAreaApe) {
		this.tbAreaByIdAreaApe = tbAreaByIdAreaApe;
	}

	public Area getTbAreaByIdAreaRec() {
		return tbAreaByIdAreaRec;
	}

	public void setTbAreaByIdAreaRec(Area tbAreaByIdAreaRec) {
		this.tbAreaByIdAreaRec = tbAreaByIdAreaRec;
	}

}